Apache Derby এর আর্কিটেকচার

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby)
198
198

Apache Derby একটি হালকা, Java-ভিত্তিক, ওপেন সোর্স রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS)। এটি সম্পূর্ণভাবে Java দ্বারা তৈরি এবং এটি এমবেডেবল ডেটাবেস হিসেবে কাজ করে, যার মানে হল যে এটি অ্যাপ্লিকেশনগুলির মধ্যে সরাসরি অন্তর্ভুক্ত করা যায়। Apache Derby এর আর্কিটেকচারটি বেশ শক্তিশালী এবং কার্যকর, যাতে এটি ডেটাবেস অপারেশনগুলিকে দক্ষভাবে পরিচালনা করতে সক্ষম হয়।

এটির আর্কিটেকচার দুটি প্রধান অংশে বিভক্ত: স্টোরেজ ইঞ্জিন এবং ডেটাবেস সার্ভার। নিচে এটির মূল উপাদানগুলি বিস্তারিতভাবে আলোচনা করা হলো।


Apache Derby আর্কিটেকচারের উপাদানসমূহ

১. স্টোরেজ ইঞ্জিন (Storage Engine)

Apache Derby এর স্টোরেজ ইঞ্জিন ডেটা সংরক্ষণের জন্য মূলভাবে দায়ী। এটি ডেটাবেসের টেবিল, ইনডেক্স, লজিক্যাল কাঠামো, এবং ডেটা স্টোরেজের দায়িত্ব পালন করে। স্টোরেজ ইঞ্জিনটির দুটি প্রধান কাজ হল:

  • ডেটা ম্যানেজমেন্ট: টেবিল এবং রেকর্ড সঞ্চয় করা, ডেটার অ্যাক্সেস এবং ইন্ডেক্স তৈরি।
  • ট্রানজেকশন ম্যানেজমেন্ট: ডেটাবেসের অবস্থা রক্ষা করতে এবং পরিবর্তনগুলি পরিচালনা করতে ট্রানজেকশন ব্যবহার।

২. ইন্টারফেস (Interface Layer)

এটি Apache Derby এর প্রধান কম্পোনেন্ট যা ডেটাবেস অ্যাপ্লিকেশন এবং ডেটাবেস ইঞ্জিনের মধ্যে ইন্টারফেস হিসেবে কাজ করে। এই স্তরের মাধ্যমে ডেটাবেস অপারেশন (যেমন SELECT, INSERT, UPDATE, DELETE) চালানো হয়।

  • JDBC (Java Database Connectivity): এটি ডেটাবেসের সঙ্গে সংযোগ স্থাপনের জন্য ব্যবহৃত হয়। Java অ্যাপ্লিকেশনগুলি JDBC API ব্যবহার করে ডার্বির সঙ্গে যোগাযোগ করে এবং SQL কোয়েরি প্রক্রিয়া করে।
  • SQL Parser: এটি SQL কমান্ডগুলি গ্রহণ করে এবং সেগুলি ডাটাবেস ইঞ্জিনের জন্য কার্যকর কমান্ডে রূপান্তরিত করে। SQL পার্সার SQL কোডের সিনট্যাক্স এবং সেম্যানটিক্স যাচাই করে।

৩. এক্সিকিউশন ইঞ্জিন (Execution Engine)

এক্সিকিউশন ইঞ্জিন ডেটাবেসের SQL কোয়েরি প্রক্রিয়া এবং ফলাফল তৈরির জন্য দায়ী। এটি SQL কোয়েরিগুলির জন্য পরিকল্পনা তৈরি করে এবং তাদের কার্যকর করে। এর প্রধান কাজ:

  • কোয়েরি অপটিমাইজেশন: SQL কোয়েরি কার্যকর করার জন্য সবচেয়ে উপযুক্ত পদ্ধতি চিহ্নিত করা।
  • কোয়েরি এক্সিকিউশন: SQL কোয়েরি কার্যকর করা এবং ফলাফল প্রাপ্ত করা।

৪. ট্রানজেকশন ম্যানেজার (Transaction Manager)

Apache Derby তে ট্রানজেকশন ম্যানেজার ডেটাবেসে নিরাপদ এবং অ্যাটমিক ট্রানজেকশন পরিচালনা করে। এটি নিম্নলিখিত কাজগুলি সম্পন্ন করে:

  • ACID ট্রানজেকশন নিশ্চিতকরণ: অ্যাটমিকিটি, কনসিস্টেন্সি, আইসোলেশন, এবং ডারবিলিটি (ACID) গ্যারান্টি প্রদান করে।
  • লগিং এবং রোলব্যাক: ট্রানজেকশন প্রক্রিয়া ব্যর্থ হলে এটি রোলব্যাক করার মাধ্যমে ডেটাবেসের অবস্থান আগের মতো ফিরে আনে।

৫. ডেটাবেস সার্ভার (Database Server)

Apache Derby একটি নেটওয়ার্ক সার্ভার চালাতে সক্ষম। সার্ভারটি ক্লায়েন্ট থেকে ডেটাবেসের অ্যাক্সেস প্রদান করে এবং রিমোট ডেটাবেস সংযোগের জন্য সার্ভার হিসেবে কাজ করে। এটি Derby Network Server নামেও পরিচিত।

  • রিমোট অ্যাক্সেস: ডার্বির রিমোট অ্যাক্সেস সক্ষম করার জন্য এটি JDBC প্রোটোকল ব্যবহার করে।
  • ইন্টারফেসিং: সার্ভার ক্লায়েন্ট অ্যাপ্লিকেশনের সঙ্গে ইন্টারফেস করে ডেটাবেস কনফিগারেশন, নিরাপত্তা এবং পারফরম্যান্স পরিচালনা করে।

৬. ডেটাবেস ক্যাটালগ (Database Catalog)

ডেটাবেস ক্যাটালগ হলো একটি মেটাডেটা স্টোরেজ যা সমস্ত ডেটাবেস অবজেক্ট (যেমন টেবিল, ইনডেক্স, কনস্ট্রেইন্ট) এবং তাদের বৈশিষ্ট্যসমূহ সংরক্ষণ করে। এটি ডেটাবেসের কাঠামো সম্পর্কে তথ্য সরবরাহ করে।

  • স্কিমা: ডেটাবেসের সারণী, দৃষ্টিভঙ্গি, ইনডেক্স এবং অন্যান্য অবজেক্টের সংকলন।
  • মেটাডেটা: ডেটাবেসের কাঠামো, ব্যবহারকারী, কনফিগারেশন সেটিংসের তথ্য সংরক্ষণ।

৭. লগিং এবং ব্যাকআপ সিস্টেম (Logging and Backup System)

Apache Derby ডেটাবেসের জন্য একটি লগিং সিস্টেম প্রদান করে, যা সকল পরিবর্তন এবং ট্রানজেকশন লগ করে। এটি ডেটাবেসের নিরাপত্তা ও ইনটেগ্রিটি নিশ্চিত করে।

  • লগ ফাইল: সব ট্রানজেকশন এবং ডেটাবেস পরিবর্তন লগ করা হয়, যাতে যেকোনো ধরনের ক্র্যাশ বা ব্যর্থতার পর ডেটা রিকভারি করা সম্ভব হয়।
  • ব্যাকআপ: ডেটাবেস ব্যাকআপ ও পুনরুদ্ধারের সুবিধা প্রাপ্ত, যা ডেটাবেসের ক্ষতি প্রতিরোধ করে।

আর্কিটেকচার ডায়াগ্রাম

+--------------------------------------------------+
|                    Application                  |
+--------------------------------------------------+
            |                           |
       JDBC Interface                Network Server
            |                           |
+-------------------+        +--------------------------+
| Query Optimizer   |        | Remote Database Access   |
+-------------------+        +--------------------------+
            |                           |
  +-------------------+       +---------------------------+
  | Execution Engine  |       | Transaction Manager        |
  +-------------------+       +---------------------------+
            |                           |
       +------------+              +------------------+
       | Storage    |              | Database Catalog |
       | Engine     |              | (Metadata Store) |
       +------------+              +------------------+

সারাংশ

Apache Derby একটি Java-ভিত্তিক রিলেশনাল ডেটাবেস সিস্টেম, যার আর্কিটেকচারটি একটি ইন্টিগ্রেটেড স্টোরেজ ইঞ্জিন, এক্সিকিউশন ইঞ্জিন, ট্রানজেকশন ম্যানেজার, এবং ডেটাবেস সার্ভারসহ একাধিক উপাদান দ্বারা গঠিত। এর এমবেডেবল সিস্টেম এবং রিমোট অ্যাক্সেস ক্ষমতা এটি ছোট থেকে মাঝারি আকারের অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে।

common.content_added_by

Embedded Mode

224
224

Embedded Mode হলো Apache Derby ডেটাবেসের একটি কনফিগারেশন যেখানে ডেটাবেসটি সরাসরি অ্যাপ্লিকেশনের মধ্যে এমবেড করা হয়। এই মোডে, Apache Derby কোনো স্ট্যান্ডঅ্যালোন সার্ভারের মতো কাজ না করে, বরং অ্যাপ্লিকেশনের মধ্যে ইনস্ট্যান্টভাবে চলমান থাকে এবং সমস্ত ডেটাবেস অপারেশন অ্যাপ্লিকেশনের অভ্যন্তরে সঞ্চালিত হয়। এটি প্রধানত ছোট থেকে মাঝারি আকারের ডেভেলপমেন্ট এবং ডেস্কটপ অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।


Embedded Mode এর বৈশিষ্ট্যসমূহ

১. অ্যাপ্লিকেশন এমবেডেড

এমবেডেড মোডে Apache Derby একটি স্বতন্ত্র ডেটাবেস সার্ভার চালায় না। বরং, ডেটাবেসের সমস্ত কার্যাবলী অ্যাপ্লিকেশনের মধ্যে একীভূত হয়ে চলে। এতে ডেটাবেস সার্ভার চালানোর জন্য কোনো নেটওয়ার্ক কনফিগারেশনের প্রয়োজন হয় না।

২. কম রিসোর্স খরচ

এমবেডেড মোডে Apache Derby কম রিসোর্স ব্যবহার করে, কারণ এতে কোনো সার্ভার প্রয়োজন হয় না। এটি ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য আদর্শ, যেখানে ডেটাবেসের সহজ এবং দ্রুত প্রবেশাধিকার প্রয়োজন।

৩. সহজ কনফিগারেশন

এই মোডে ডেটাবেস কনফিগারেশন খুবই সহজ। অ্যাপ্লিকেশনটি যখন চালু হয়, তখন ডেটাবেসও স্বয়ংক্রিয়ভাবে শুরু হয়ে যায়, এবং এর জন্য সার্ভারের মতো কোনো আলাদা পোর্ট বা কনফিগারেশন প্রয়োজন হয় না।

৪. JDBC এর মাধ্যমে এক্সেস

ডেটাবেস অ্যাক্সেস করার জন্য অ্যাপ্লিকেশনটি JDBC API ব্যবহার করে। অ্যাপ্লিকেশন এবং ডেটাবেসের মধ্যে যোগাযোগ JDBC কানেকশন মাধ্যমে সম্পন্ন হয়।

৫. নিরাপত্তা

এমবেডেড মোডে, ডেটাবেস অ্যাপ্লিকেশনের অংশ হিসেবে কাজ করে, এবং তাই নিরাপত্তা এবং অ্যাক্সেস কন্ট্রোল অ্যাপ্লিকেশনের মাধ্যমে পরিচালিত হয়।

৬. টেবিল এবং ডেটাবেস ব্যবস্থাপনা

এমবেডেড মোডে অ্যাপ্লিকেশনটি নিজেই ডেটাবেস তৈরি করতে এবং পরিচালনা করতে সক্ষম। SQL কুয়েরি, ইনডেক্সিং, ট্রানজেকশন এবং অন্যান্য ডেটাবেস কার্যাবলী সরাসরি অ্যাপ্লিকেশন কোডের মাধ্যমে সম্পাদিত হয়।


Apache Derby Embedded Mode কনফিগারেশন

১. ডেটাবেস তৈরি

Embedded Mode এ একটি ডেটাবেস তৈরি করতে নিচের JDBC কমান্ড ব্যবহার করা যেতে পারে:

Connection conn = DriverManager.getConnection("jdbc:derby:myDB;create=true");

এটি ডেটাবেস myDB তৈরি করবে (যদি এটি আগে থেকে না থাকে) এবং ডেটাবেসে সংযোগ স্থাপন করবে।

২. টেবিল তৈরি

ডেটাবেস তৈরি হওয়ার পর, আপনি SQL কুয়েরি ব্যবহার করে টেবিল তৈরি করতে পারবেন:

Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT)");

৩. ডেটাবেস বন্ধ করা

ডেটাবেসটি বন্ধ করতে আপনি নিচের কোড ব্যবহার করতে পারেন:

conn.close();

৪. নির্দিষ্ট ডেটাবেস ব্যবহার

আপনি একাধিক ডেটাবেসও পরিচালনা করতে পারেন। একে ব্যবহার করার জন্য একটি নতুন ডেটাবেস কানেকশন খুলতে হবে:

Connection conn = DriverManager.getConnection("jdbc:derby:/path/to/database;create=false");

৫. JDBC কানেকশন সেটআপ

Embedded Mode এ Apache Derby ডেটাবেসে সংযোগ স্থাপন করার জন্য আপনাকে সঠিক JDBC URL ব্যবহার করতে হবে। এই URL ডেটাবেস লোকেশন এবং বিভিন্ন কনফিগারেশন সেটিংস নির্ধারণ করে।

Connection conn = DriverManager.getConnection("jdbc:derby:myDB");

এটি ডেটাবেস myDB-তে সংযোগ স্থাপন করবে, এবং যদি এটি না থাকে, তবে এটি তৈরি হবে।


Embedded Mode এর সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  • সহজ ইনস্টলেশন: কোনো সার্ভার পরিচালনা বা কনফিগারেশনের প্রয়োজন নেই।
  • কমান্ড/কোডের মাধ্যমে অ্যাক্সেস: ডেটাবেস সরাসরি অ্যাপ্লিকেশন কোডের মাধ্যমে পরিচালিত হয়।
  • কম রিসোর্স ব্যবহার: ছোট আকারের অ্যাপ্লিকেশন এবং ডেস্কটপ সফটওয়্যারের জন্য আদর্শ।
  • বাজারে নির্ভরযোগ্যতা: সহজ এবং দ্রুত ডেভেলপমেন্টের জন্য উপযুক্ত।

সীমাবদ্ধতা:

  • স্কেলেবল না: বড় আকারের, ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন বা উচ্চ পারফরমেন্সের জন্য উপযুক্ত নয়।
  • নেটওয়ার্ক কনফিগারেশন অনুপস্থিত: অনেক অ্যাপ্লিকেশন যেখানে সার্ভার প্রয়োজন, সেখানে এই মোড ব্যবহার করা যাবে না।
  • অ্যাক্সেস কন্ট্রোল সীমিত: একটি অ্যাপ্লিকেশন দ্বারা অ্যাক্সেস করা হয়, তাই একাধিক ব্যবহারকারী একসাথে অ্যাক্সেস করতে পারবেন না।

সারাংশ

Apache Derby Embedded Mode একটি শক্তিশালী, হালকা, এবং সহজ ব্যবহারের ডেটাবেস সিস্টেম, যা ছোট থেকে মাঝারি আকারের অ্যাপ্লিকেশন এবং ডেস্কটপ সফটওয়্যার ডেভেলপমেন্টের জন্য আদর্শ। এটি অ্যাপ্লিকেশন কোডের মাধ্যমে এমবেড করা যায় এবং ডেটাবেসের সাথে সরাসরি ইন্টিগ্রেট করা যায়, যা উন্নয়ন প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। তবে, এর স্কেলেবলতা এবং নেটওয়ার্ক সাপোর্ট সীমিত, তাই বৃহত্তর বা ডিস্ট্রিবিউটেড সিস্টেমে এটি ব্যবহৃত হবে না।

common.content_added_by

Client-Server Mode

223
223

Apache Derby একটি এমবেডেবল ডেটাবেস সিস্টেম হলেও এটি Client-Server Mode এ কাজ করার ক্ষমতাও রাখে, যেখানে Apache Derby Server এবং Client অ্যাপ্লিকেশন আলাদাভাবে চলে। এই পরিবেশে, সার্ভার এবং ক্লায়েন্ট একে অপরের সাথে নেটওয়ার্কের মাধ্যমে যোগাযোগ করে এবং ডেটাবেস পরিচালনা করে। Client-Server Mode সাধারণত তখন ব্যবহৃত হয় যখন একাধিক ক্লায়েন্টকে একই ডেটাবেসে অ্যাক্সেস দেওয়া হয় বা অ্যাপ্লিকেশন এবং ডেটাবেস একে অপরের থেকে আলাদা থাকে।


Client-Server Mode কনফিগারেশন

Apache Derby Client-Server Mode কনফিগার করতে হলে আপনাকে নিচের ধাপগুলো অনুসরণ করতে হবে।


১. Apache Derby নেটওয়ার্ক সার্ভার চালু করা

প্রথমে, আপনি Apache Derby সার্ভার চালু করতে হবে যা Network Server হিসেবে কাজ করবে। এটি একটি TCP/IP ভিত্তিক নেটওয়ার্ক সার্ভার হবে, যার মাধ্যমে ক্লায়েন্টরা ডেটাবেসে অ্যাক্সেস করতে পারবে।

Windows-এ Network Server চালু করা:

আপনি startNetworkServer.bat ফাইলটি ব্যবহার করে সার্ভার চালু করতে পারেন। এটি সাধারণত Apache Derby ইনস্টলেশনের bin ফোল্ডারে পাওয়া যাবে।

C:\derby\bin\startNetworkServer.bat

Linux/MacOS-এ Network Server চালু করা:

Linux বা MacOS এ, আপনি startNetworkServer.sh স্ক্রিপ্ট ব্যবহার করতে পারেন:

$DERBY_HOME/bin/startNetworkServer.sh

এটি Apache Derby Network Server চালু করবে এবং ডিফল্টভাবে 1527 পোর্টে নেটওয়ার্ক কানেকশন গ্রহণ করবে।


২. ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করা

ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করতে হলে, আপনাকে JDBC (Java Database Connectivity) ব্যবহার করতে হবে। ক্লায়েন্ট অ্যাপ্লিকেশন সার্ভারের মাধ্যমে ডেটাবেসে সংযোগ স্থাপন করবে।

ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগারেশন:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class DerbyClient {
    public static void main(String[] args) {
        try {
            // ড্রাইভার লোড
            Class.forName("org.apache.derby.client.ClientDriver");

            // সার্ভারে ডেটাবেসের সাথে সংযোগ স্থাপন
            String url = "jdbc:derby://localhost:1527/myDB;create=true";
            Connection conn = DriverManager.getConnection(url);

            // স্টেটমেন্ট তৈরি
            Statement stmt = conn.createStatement();
            stmt.executeUpdate("CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT)");

            System.out.println("Employee টেবিল তৈরি করা হয়েছে!");

            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এখানে, আপনি jdbc:derby://localhost:1527/myDB URL দিয়ে ডেটাবেসের সাথে সংযোগ স্থাপন করবেন, যেখানে:

  • localhost হল সার্ভারের আইপি বা হোস্টনেম।
  • 1527 হল ডিফল্ট পোর্ট, তবে আপনি কনফিগারেশনের মাধ্যমে এটি পরিবর্তন করতে পারেন।
  • myDB হল ডেটাবেসের নাম।

৩. ডেটাবেস অপারেশন (SQL Query)

Client-Server Mode এ SQL কুয়েরি একইভাবে পরিচালিত হয় যেমন আপনি Embedded Mode এ করতেন, তবে এখানে কুয়েরি পাঠানো হয় সার্ভারের কাছে এবং সার্ভার তা পরিচালনা করে।

কুয়েরি উদাহরণ:

  1. ডেটাবেসে ডেটা ইনসার্ট করা:
stmt.executeUpdate("INSERT INTO employee VALUES (1, 'John Doe', 30)");
  1. ডেটা রিট্রিভ করা:
ResultSet rs = stmt.executeQuery("SELECT * FROM employee");
while (rs.next()) {
    System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name") + ", Age: " + rs.getInt("age"));
}

৪. ক্লায়েন্টের সাথে সার্ভারের যোগাযোগ

Client-Server Mode এর মধ্যে, ক্লায়েন্ট সার্ভারের সাথে TCP/IP কানেকশনের মাধ্যমে যোগাযোগ করে। ডেটাবেস সার্ভারটি Derby Network Server-এর মাধ্যমে চলতে থাকে, যেখানে সার্ভার ডেটাবেসের সব অপারেশন সম্পাদন করে এবং ক্লায়েন্ট কেবল সার্ভারের কাছে কুয়েরি পাঠায়।

৫. পোর্ট কনফিগারেশন এবং নিরাপত্তা

আপনি derby.properties ফাইলের মাধ্যমে নেটওয়ার্ক সার্ভারের পোর্ট কনফিগার করতে পারেন। ডিফল্ট পোর্ট 1527 হলেও এটি পরিবর্তন করা সম্ভব।

উদাহরণ:

derby.drda.portNumber=1528

এছাড়া, আপনি সার্ভারের সিকিউরিটি ও অ্যাক্সেস কন্ট্রোল কনফিগার করতে পারেন।


৬. ডেটাবেস বন্ধ করা

যখন আপনার কাজ শেষ হয়ে যাবে, তখন আপনি Network Server বন্ধ করতে পারবেন।

Windows-এ বন্ধ করা:

C:\derby\bin\stopNetworkServer.bat

Linux/MacOS-এ বন্ধ করা:

$DERBY_HOME/bin/stopNetworkServer.sh

এটি সার্ভার বন্ধ করে দেবে।


সারাংশ

Apache Derby Client-Server Mode ডেটাবেসের সাথে একাধিক ক্লায়েন্ট সংযোগ স্থাপনের একটি শক্তিশালী পদ্ধতি। এতে সার্ভার এবং ক্লায়েন্ট আলাদাভাবে কাজ করে এবং ডেটাবেস পরিচালনার জন্য নেটওয়ার্কের মাধ্যমে যোগাযোগ স্থাপন করা হয়। এটি সাধারণত বড় বা ডিসেন্ট্রালাইজড অ্যাপ্লিকেশনে ব্যবহৃত হয়, যেখানে একাধিক ক্লায়েন্ট সার্ভারের ডেটাবেসে অ্যাক্সেস করতে পারে।

common.content_added_by

Derby Engine এবং ডেটাবেসের মূল ধারণা

183
183

Apache Derby একটি হালকা ও Java-ভিত্তিক রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS)। এটি Derby Engine নামে পরিচিত মূল ডেটাবেস ইঞ্জিন ব্যবহার করে কাজ করে। Derby Engine একটি সম্পূর্ণরূপে Java দিয়ে তৈরি এবং এটি এমবেডেবল (embeddable) ডেটাবেস হিসেবে ব্যবহৃত হয়, যেখানে এটি ডেভেলপারদের Java অ্যাপ্লিকেশনগুলিতে সরাসরি এমবেড করে ব্যবহার করার সুবিধা দেয়।

এই বিভাগের মাধ্যমে Derby Engine এবং ডেটাবেসের মূল ধারণা সম্বন্ধে বিস্তারিত আলোচনা করা হবে।


Derby Engine

Derby Engine হল Apache Derby ডেটাবেসের অন্তর্নিহিত ইঞ্জিন, যা সমস্ত ডেটাবেস অপারেশন পরিচালনা করে। এটি SQL কুয়েরি প্রক্রিয়াকরণ, ডেটাবেস ট্রানজেকশন, ডেটা ম্যানিপুলেশন এবং অন্যান্য ডেটাবেস সম্পর্কিত কার্যাবলী সম্পাদন করে।

Derby Engine এর মূল কাজগুলি হলো:

  1. SQL কোয়েরি এক্সিকিউশন: Derby Engine SQL কুয়েরি গুলোকে প্রক্রিয়া করে এবং ডেটাবেসে কাজ করে।
  2. ডেটাবেস ট্রানজেকশন ম্যানেজমেন্ট: ট্রানজেকশন সমর্থন করে যা ACID (Atomicity, Consistency, Isolation, Durability) বৈশিষ্ট্য নিশ্চিত করে।
  3. ডেটা সঞ্চয়ন এবং retrieval: Derby Engine ডেটাবেসের টেবিলের মধ্যে ডেটা ইনসার্ট, আপডেট, ডিলিট এবং রিট্রিভ করার জন্য কার্যকরী থাকে।
  4. ইন্ডেক্সিং: কার্যকরী অনুসন্ধানের জন্য Derby Engine টেবিলগুলির ওপর ইন্ডেক্স তৈরি করে।
  5. এমবেডেড এবং নেটওয়ার্ক মোড: এটি অ্যাপ্লিকেশনের মধ্যে এমবেড করা যেতে পারে, অথবা নেটওয়ার্কের মাধ্যমে বাহ্যিক ক্লায়েন্ট দ্বারা অ্যাক্সেস করা যেতে পারে।

Derby Engine, এমবেডেড ডেটাবেস হিসেবে JDBC (Java Database Connectivity) বা JPA (Java Persistence API) এর মাধ্যমে ব্যবহৃত হতে পারে। এটি Java Virtual Machine (JVM) এ কার্যকরীভাবে চলে এবং অন্যান্য Java অ্যাপ্লিকেশনগুলির সঙ্গে সহজে ইন্টিগ্রেট করা যায়।


ডেটাবেসের মূল ধারণা

ডেটাবেস একটি সংগঠিত তথ্য সঞ্চয়ের ব্যবস্থা যেখানে তথ্যটি বিভিন্ন টেবিলের মধ্যে সংরক্ষিত থাকে। রিলেশনাল ডেটাবেস সিস্টেমে (RDBMS) এই তথ্যগুলি টেবিল, কলাম, এবং রো আকারে থাকে। Apache Derby একটি রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS), যা তথ্য সঞ্চয়, পরিচালনা এবং পুনরুদ্ধার করার জন্য SQL ব্যবহার করে।

1. টেবিল (Tables)

ডেটাবেসের মধ্যে তথ্য সাধারণত টেবিল আকারে সঞ্চিত থাকে। প্রতিটি টেবিল এক বা একাধিক কলাম (columns) ও রো (rows) দিয়ে গঠিত। টেবিলের প্রতিটি রো একটি একক ডেটা ইউনিট (যেমন, একটি ব্যক্তি বা একটি পণ্য) প্রকাশ করে এবং প্রতিটি কলাম সেই ইউনিটের নির্দিষ্ট বৈশিষ্ট্য (যেমন, নাম, বয়স, দাম) ধারণ করে।

2. প্রাইমারি কী (Primary Key)

প্রাইমারি কী একটি টেবিলের এমন একটি কলাম যা প্রতিটি রোকে ইউনিকভাবে চিহ্নিত করে। একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপনের জন্য প্রাইমারি কী অত্যন্ত গুরুত্বপূর্ণ।

3. ফরেন কী (Foreign Key)

ফরেন কী একটি কলাম যা একটি টেবিলের রোকে অন্য একটি টেবিলের প্রাইমারি কী দিয়ে সংযুক্ত করে। এটি দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করতে সহায়তা করে।

4. রিলেশন (Relation)

রিলেশন হল ডেটাবেসের দুটি টেবিলের মধ্যে সম্পর্ক। একটি রিলেশন একটি টেবিলের তথ্য অন্য একটি টেবিলের তথ্যের সাথে যুক্ত করে।

5. ইনডেক্স (Index)

ইনডেক্স হল ডেটাবেসের এমন একটি বৈশিষ্ট্য যা টেবিলের তথ্য দ্রুত অনুসন্ধান করতে সহায়তা করে। এটি ডেটাবেসের পারফরম্যান্স বাড়াতে সহায়ক, বিশেষত যখন বড় ডেটাবেসে দ্রুত অনুসন্ধান প্রয়োজন।

6. SQL (Structured Query Language)

SQL হল ডেটাবেসের সাথে যোগাযোগের ভাষা, যা ডেটাবেসে তথ্য সংযোজন, আপডেট, মুছে ফেলা, এবং অনুসন্ধান করার জন্য ব্যবহৃত হয়। Apache Derby SQL সমর্থন করে, যা ANSI SQL এর কিছু মূল অংশ অন্তর্ভুক্ত করে।

7. ট্রানজেকশন (Transaction)

ট্রানজেকশন হল একাধিক ডেটাবেস অপারেশন যা একত্রে সম্পন্ন হতে হবে। যদি একটিও অপারেশন ব্যর্থ হয়, তবে পুরো ট্রানজেকশনটি রোলব্যাক করা হয়। ট্রানজেকশন ACID বৈশিষ্ট্য নিশ্চিত করে:

  • Atomicity: সমস্ত অপারেশন একত্রে অথবা একটিও না, এমনভাবে সম্পন্ন হয়।
  • Consistency: ডেটাবেস সর্বদা একটি সঠিক অবস্থায় থাকে।
  • Isolation: একাধিক ট্রানজেকশন একে অপরের ওপর প্রভাব ফেলবে না।
  • Durability: ট্রানজেকশন সম্পন্ন হলে তার ফলাফল স্থায়ী থাকবে।

সারাংশ

Derby Engine একটি শক্তিশালী এবং Java-ভিত্তিক ডেটাবেস ইঞ্জিন, যা ডেটাবেস অপারেশন, ট্রানজেকশন ম্যানেজমেন্ট, এবং SQL কুয়েরি এক্সিকিউশনকে পরিচালনা করে। এটি Apache Derby ডেটাবেস সিস্টেমের মূল অংশ এবং এটি ডেটাবেসের কার্যক্ষমতা এবং ব্যবস্থাপনা নিশ্চিত করে। ডেটাবেসের মূল ধারণাগুলি, যেমন টেবিল, প্রাইমারি কী, ফরেন কী, রিলেশন, এবং ট্রানজেকশন, ডেটাবেসের কার্যকরী অপারেশন এবং ডেটা ম্যানিপুলেশনের জন্য অপরিহার্য।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion